Aus Sicht des Pentesters: Wir beginnen mit der Aufklärung des Zielsystems, um Informationen über offene Ports, laufende Dienste und potenzielle Schwachstellen zu sammeln.
Aus Sicht des Pentesters: Der ARP-Scan identifiziert das Zielsystem mit der IP-Adresse 192.168.2.144 und der MAC-Adresse 08:00:27:3e:86:a2.
Aus Sicht des Pentesters: Wir fügen die IP-Adresse und den Hostnamen "cengbox1.vln" zur `/etc/hosts`-Datei hinzu.
Aus Sicht des Pentesters: Ein UDP-Scan mit den 1000 häufigsten Ports wird durchgeführt. Es werden keine interessanten offenen UDP Ports gefunden.
Aus Sicht des Pentesters: Ein umfassender Nmap-Scan wird durchgeführt. Die Ergebnisse zeigen, dass SSH (Port 22) und HTTP (Port 80) offen sind. Der Webserver ist Apache 2.4.18 unter Ubuntu.
Aus Sicht des Pentesters: Wir beginnen mit der Web-Enumeration, um versteckte Dateien und Verzeichnisse zu finden.
Aus Sicht des Pentesters: Nikto findet, dass die X-Frame-Options und X-Content-Type-Options Header fehlen. Außerdem ist der Apache Webserver veraltet. Die Datei `/icons/README` ist vorhanden.
Aus Sicht des Pentesters: Gobuster findet die Verzeichnisse `/img`, `/uploads`, `/css`, `/js`, `/vendor` und die Datei `/index.php`.
Aus Sicht des Pentesters: Auf der `/index.php`-Seite finden wir eine E-Mail Adresse `cengover@cengbox.com`.
Aus Sicht des Pentesters: Feroxbuster findet den `/masteradmin`-Pfad.
Aus Sicht des Pentesters: Der `/masteradmin`-Pfad enthält eine Login-Seite.
Aus Sicht des Pentesters: Wir versuchen, uns am Admin-Panel anzumelden.
Aus Sicht des Pentesters: Hydra wird verwendet, um einen Brute-Force-Angriff gegen die Anmeldeseite des Admin-Panels durchzuführen. Es werden gängige Passwörter aus der Rockyou-Wordlist verwendet.
Aus Sicht des Pentesters: Feroxbuster findet weitere Dateien und Verzeichnisse.
Aus Sicht des Pentesters: Dirb findet `db.php`, `login.php` und `upload.php` im `/masteradmin`-Verzeichnis.
Aus Sicht des Pentesters: Ein Curl-Befehl versucht, auf eine potenziell sensible Ressource zuzugreifen (`/masteradmin/login.php/sips/sipssys/users/a/admin/user`). Der Server antwortet mit einem HTTP 200 OK, was darauf hindeutet, dass diese Ressource existiert und zugänglich ist. Dies könnte eine Information Disclosure Schwachstelle sein.
Aus Sicht des Pentesters: Nikto findet weitere Hinweise auf Schwachstellen und interessante Dateien. Besonders hervorzuheben ist der Hinweis auf eine Information Disclosure Schwachstelle in SIPS v0.2.2.
Aus Sicht des Pentesters: Der Zugriff auf `/masteradmin/login.php/siteminder/smadmin.html` gibt einen HTTP 200 OK zurück, was bestätigt, dass diese Seite existiert. Es handelt sich wahrscheinlich um eine SiteMinder-Admin-Login-Seite, die möglicherweise anfällig ist.
Aus Sicht des Pentesters: Burp Suite wird verwendet, um einen PHP Reverse Shell auf die `/upload.php`-Seite hochzuladen. Die Dateiendung wird zu `shell2.php.ceng` geändert, um eine Filterung zu umgehen. Der Server antwortet mit "Success", was bedeutet, dass der Upload erfolgreich war.
Aus Sicht des Pentesters: Wir starten Netcat auf Port 9001, um die Reverse Shell zu empfangen.
Aus Sicht des Pentesters: Wir greifen auf den hochgeladenen PHP Reverse Shell zu.
Aus Sicht des Pentesters: Wir erhalten eine Reverse Shell als `www-data`.
Aus Sicht des Pentesters: Wir erstellen eine interaktive Shell mit Python, da `python3` installiert ist.
Aus Sicht des Pentesters: Wir verifizieren nochmals, dass wir als Benutzer `www-data` angemeldet sind.
Aus Sicht des Pentesters: Wir suchen nach SUID-Binärdateien.
Aus Sicht des Pentesters: Wir versuchen, mit `sudo -l` herauszufinden, ob der Benutzer `www-data` irgendwelche Rechte hat, aber es wird ein Passwort benötigt. Das Ausführen von "ls /home/" zeigt, dass es ein Benutzerverzeichnis Namens "cengover" gibt
Aus Sicht des Pentesters: Der Zugriff auf das Verzeichnis wird uns verweigert.
Aus Sicht des Pentesters: Die `/etc/passwd`-Datei ist nicht beschreibbar.
Aus Sicht des Pentesters: Wir suchen nach Binärdateien mit gesetzten Capabilities, um eventuell Berechtigungen zu erweitern.
Aus Sicht des Pentesters: Nachdem wir limited shell zugriff haben und wissen dass Python verfügbar ist, können wir PwnKit ausnutzen, um Root-Rechte zu erlangen.
PwnKit ist ein Exploit, der die pkexec-Schwachstelle (CVE-2021-4034) ausnutzt, um Root-Rechte zu erlangen.
Du solltest eine Root Shell erhalten.
Die folgenden Code-Blöcke zeigen die Schritte zur Ausnutzung der Schwachstelle und den erfolgreichen Erhalt von Root-Rechten.
Die Ausnutzung dieser Schwachstelle ermöglicht es einem Angreifer, vollständige Kontrolle über das System zu erlangen. Dies kann zu Datenverlust, Systemausfällen und anderen schwerwiegenden Folgen führen.
Installiere die neuesten Sicherheitsupdates, um die pkexec-Schwachstelle zu beheben.
Aus Sicht des Pentesters: Da wir jetzt eine Shell als `www-data` haben, versuchen wir, unsere Privilegien zu erhöhen.
Aus Sicht des Pentesters: Wir laden das PwnKit-Skript herunter und führen es aus.
Aus Sicht des Pentesters: Wir sind jetzt als `root` angemeldet. Fantastisch! Die Privilege Escalation war erfolgreich!
Aus Sicht des Pentesters: Wir beenden die Root-Shell und schauen uns die laufenden Prozesse an
Aus Sicht des Pentesters: Wir navigieren ins `/var/www/html` verzeichnis.
Aus Sicht des Pentesters: Wir navigieren ins `/masteradmin/` verzeichnis.
Aus Sicht des Pentesters: Wir finden in der `db.php` die Credentials zur Datenbank. Interessant ist das Root Passwort.
Aus Sicht des Pentesters: Der Versuch sich als Root anzumelden scheitert.
Aus Sicht des Pentesters: Wir verbinden uns mit der Datenbank und finden das Passwort "C3ng0v3R00T1!" für den Benutzer `masteradmin`.
Aus Sicht des Pentesters: Der Versuch, uns als Root anzumelden, schlägt immer noch fehl.
Aus Sicht des Pentesters: Wir listen das `/home/` Verzeichnis auf.
Aus Sicht des Pentesters: Der Benutzer `cengover` darf keine `sudo`-Befehle ausführen.
Aus Sicht des Pentesters: Wir navigieren ins Homeverzeichnis von `cengover` und finden die Datei `user.txt`.
Aus Sicht des Pentesters: Wir finden die erste Flag.
Aus Sicht des Pentesters: Wir durchsuchen den `bash_history` und den `mysql_history` um Passwörter zu finden.
Aus Sicht des Pentesters: Wir starten einen HTTP Server.
Aus Sicht des Pentesters: Wir laden das Tool pspy64 auf das System um laufende Prozesse zu untersuchen.
Aus Sicht des Pentesters: Mit pspy64 sehen wir, dass regelmäßig ein Python Skript als Root ausgeführt wird.
Aus Sicht des Pentesters: Wir untersuchen das Script `/opt/md5check.py`, das als Root ausgeführt wird. Es prüft, ob die `/etc/passwd` Datei verändert wurde. Wenn ja, schreibt es in eine Warnungsdatei.
Aus Sicht des Pentesters: Die Datei `/opt/md5check.py` ist für die Gruppe "users" beschreibbar. Der Benutzer `cengover` ist Mitglied dieser Gruppe.
Aus Sicht des Pentesters: Wir nutzen nun die gefundene Schwachstelle aus, um Root-Rechte zu erlangen.
Aus Sicht des Pentesters: Wir ändern das Script, um eine Reverse Shell zu starten.
Aus Sicht des Pentesters: Wir starten einen Netcat-Listener auf Port 4444.
Aus Sicht des Pentesters: Wir erhalten eine Reverse Shell!
Aus Sicht des Pentesters: Wir sind jetzt als `root` angemeldet. Fantastisch! Die Privilege Escalation war erfolgreich!
Aus Sicht des Pentesters: Wir ändern das Script um eine Reverse Shell zu starten
Aus Sicht des Pentesters: Wir sind jetzt als Root angemeldet!
Aus Sicht des Pentesters: Wir lesen den Inhalt der `root.txt` aus und finden die Root Flag.
Proof of Concept: Privilege Escalation
Aus Sicht des Pentesters: Nachdem wir durch die Analyse des Systems den automatisierten Prozess `/opt/md5check.py` identifiziert haben, demonstrieren wir das Ändern des Script um eine Reverse Shell auszuführen.
Kurzbeschreibung
Der Benutzer `cengover` kann das Script `/opt/md5check.py` ändern, da er Mitglied der Gruppe `users` ist. Da das Script als Root ausgeführt wird, kann der Benutzer es ausnutzen um eine Reverse Shell zu starten.
Voraussetzungen
Schritt-für-Schritt-Anleitung
Erwartetes Ergebnis
Du solltest eine Root Shell erhalten.
Beweismittel
Die folgenden Code-Blöcke zeigen die Schritte zur Ausnutzung der Schwachstelle und den erfolgreichen Erhalt von Root-Rechten.
Risikobewertung
Die Ausnutzung dieser Schwachstelle ermöglicht es einem Angreifer, vollständige Kontrolle über das System zu erlangen. Dies kann zu Datenverlust, Systemausfällen und anderen schwerwiegenden Folgen führen.
Empfehlungen
Beschränke die Schreibrechte für `/opt/md5check.py` auf den Root-Benutzer.